#include <stdio.h>
#include <string.h>

#define N	10
#define M	20

int main(void)
{
	char str[N];
	char str2[M];
	int i;
	int len;

	i = 0;
	do {
		scanf("%c", &str[i]);
	}while(str[i++] != '\n' && i < N - 1);
	// 读入的是字符串,一定有'\0',读不到的,赋'\0'
	if (str[i - 1] == '\n')
		str[i - 1] = '\0'; // '\n'的位置或者数组的最后一个位置
	else {
		// i == N - 1
		str[i] = '\0';
	}

	i = 0;
	do {
		scanf("%c", &str2[i]);
	}while(str2[i++] != '\n' && i < M - 1);
	// 读入的是字符串,一定有'\0',读不到的,赋'\0'
	if (i < M - 1) {
		str2[i - 1] = '\0'; // '\n'的位置或者数组的最后一个位置
	} else {
		str2[i] = '\0';
	}

	puts(str);
	puts(str2);
	
	len = strlen(str);
#if 0
	// 拼接 str2拼接到str
	/*
	 	找到str的'\0'
		str2 copy到str的'\0'位置
	 */
	// len就是str '\0'下标
	for (i = 0; str2[i] && (len + i) < N - 1; i++) {
		str[len + i] = str2[i];
	}
	for (; len + i < N; i++)
		str[len + i] = '\0';
#endif
	/*
	 N - len - 1最多还能向str追加的字符个数
	 函数本身没有给'\0'留空间
	 */
	strncat(str, str2, N - len - 1);
	puts(str);

	return 0;
}

